correctly handle async